In a telecommunications multiplexer or switch, complicated strategies are often used to merge data of different classes of service and different source-destination pairs in a fair and efficient manner. Circuits implementing these strategies are typically expensive and difficult to design and configure. The complexity and cost of the implementation is typically driven by the number of input and output links and the capacity, or bandwidth, of the links. A number of these exemplary circuits are illustrated below.
FIG. 1 illustrates a typical generic multiplexer inward flow configuration in which a number of downlink inputs 10, 11, 15 are connected to a data selector 20. The data selector 20 may, for example, comprise a scheduler, a time division multiplexer (“TDM”) merge, or similar device known to those of ordinary skill in the art. The data selector 20 outputs data in an uplink output 30.
FIG. 2 illustrates a typical generic multiplexer outward flow configuration in which an uplink input 40 is connected to a data forwarding device 50. The data forwarding device 50 may, for example, comprise a router, sprayer, selector, or similar devices known to those of ordinary skill in the art. The forwarding device 50 outputs a number of downlink outputs 60, 61, 65.
FIG. 3 illustrates a typical generic multiplexer with a bidirectional flow configuration in which a number of bidirectional downlinks 70, 71, 75 are connected to a multiplexer 80 which is also connected to bidirectional uplink 90. The multiplexer 80 and bi-directional data flows 70, 71, 75, 90, or similar devices, are known to those of ordinary skill in the art.
FIG. 4 illustrates a switch constructed with an array of multiplexers. Specifically, a number of data inputs, such as data channels 100, 102, 110, are each connected by data link connections 101, 103, and 111, respectively, to multiplexers 120, 122, and 124. The multiplexers sort the data and provide data channel outputs 130, 131, and 135, respectively. Generally, the multiplexer has more inputs on the left side of FIG. 4 and these represent the down links; the right side outputs representing the up links. The defining characteristic of a multiplexer, which differentiates it from a switch, is the merge of data from many sources down to a destination. For example, a multiplexer is represented by Multiplexer 120 which accepts data from input links 100, 102, and 110; and merges the data onto link 130.
FIG. 5 illustrates a multiplexer configuration which utilizes “brute force” processing. In FIG. 5, a number “N” data sources illustrated by data sources 200, 200B, 201, 201B, 202, 202B, are provided. Each of the data sources 200, 201, and 202 provide a data flow 210, 211, 212 each data flow having a designated bandwidth. The data flows 210, 211, 212 are connected to forward multiplexers 220, 221, 222 which distribute data to one or more data queues 240, 241, 242, 243, 244, and 245 via data channels 230, 231, 232, 233, 234, and 235. Furthermore, each data queue provides a flow control connection to the respective data source to protect the data queue from overflow. For example, data queues 240, 241, 242, 243, 244, and 245 provide flow control through data link connections 260, 261, 262, 263, 264, and 265 to data sources 200, 200B, 201, 201B, 202, 202B respectively.
Data queues 240, 241, 242 provide a data output to scheduler 270 through data connections 250, 251, and 252 respectively. Likewise, data queues 243, 244, 245 provide a data output to scheduler 271 through data connections 253, 254, and 255 respectively. Each scheduler 270, 271 provides flow merge where more bandwidth is offered than can be transmitted. Each scheduler provides data output over data channel 280, 281 to destination 290, 291, respectively.
Each of these configurations has limitations, especially when handling higher bandwidth data traffic. In light of the foregoing, there is a need for improved systems and methods for processing data traveling in a network in an efficient manner. Specifically, there is a need for simple, efficient merge circuits that utilize available bandwidth in an efficient manner.